package Steps;

import java.util.*;


import Classes.Genre;
import Classes.Voorstelling;
import DAO.GenreDAO;
import DAO.KlantDAO;
import DAO.VoorstellingDAO;

public class Steps {
	private Scanner scanIn;
	
	public Steps(Scanner scanIn){
		this.scanIn = scanIn;
	}

	public int StepGenre(){
		
		List<Genre> AL_Genre = new ArrayList<Genre>();
		//get alle genres
		GenreDAO GDAO = new GenreDAO();
		AL_Genre = GDAO.getAllGenre();
		
		//print Genres
		for(int i = 0; i<AL_Genre.size(); i++){
			System.out.println(AL_Genre.get(i));
		}
		
		System.out.println("999 -> stoppen");
			
		//inlezen keuze genre	
		//System.out.println("Geef het nummer van de genre : ");
		//Scanner scanIn = new Scanner(System.in);
		
		int genreNummer;
		do {
			System.out.println("Geef het nummer van de genre : ");
	       
	        
	        genreNummer = scanIn.nextInt();
	        //scanIn.nextLine();
	        
	        
	        if(genreNummer == 999){
	        	break;
	        }
	    } while (genreNummer <= 0 || genreNummer > AL_Genre.size());
			
			return genreNummer;
		
		
		 
	}
	
	public int StepVoorstelling(int genreNummer){
		
		
		int voorstellingNummer;
		List<Voorstelling> AL_Voorstellingen = new ArrayList<Voorstelling>();
		List<Integer> lijstVoorstellingNummers = new ArrayList<Integer>();
		
		//voorstellingen binnenhalen in ArrayList
		VoorstellingDAO test = new VoorstellingDAO();
		AL_Voorstellingen = test.getVoorstellingenByGenreNr(genreNummer);
		
		//voorstellingen uitlezen
		for(int i = 0; i<AL_Voorstellingen.size(); i++){
			System.out.println(AL_Voorstellingen.get(i));
			lijstVoorstellingNummers.add(AL_Voorstellingen.get(i).getVoorstellingsNr());
		}
		System.out.println("999 -> terug naar Genres!");
		
		//Voorstelling selecteren ..
		/*System.out.println("Geef het nummer van de voorstelling: ");
		voorstellingNummer = scanIn.nextInt();*/
		
		do {
			System.out.println("Geef het nummer van de voorstelling : ");
			voorstellingNummer = scanIn.nextInt();
	        //scanIn.nextLine();
	       if(voorstellingNummer == 999){
	    	   break;
	       }
	    } while (voorstellingNummer <= 0 || !lijstVoorstellingNummers.contains(voorstellingNummer));
		
		return voorstellingNummer;
		
		
		
		
		
		
		
	}

	public int StepVrijeplaatsen(int voorstlNr){
		
		int aantalPlaatsen;
		
		VoorstellingDAO test = new VoorstellingDAO();
		test.getVoorstellingByVoorstellingNr(voorstlNr);
		//lees geselecteerd object uit!
		System.out.println(test.getVoorstellingByVoorstellingNr(voorstlNr));
		
		System.out.println("0 -> Terug naar Voorstelligen");
		//int aantalPlaatsen = scanIn.nextInt();
		test.getVoorstellingByVoorstellingNr(voorstlNr).getVrijePlaatsen();
		
		do {
			System.out.println("Geef het aantal plaatsen dat je wilt bestellen : ");
			aantalPlaatsen = scanIn.nextInt();
	        //scanIn.nextLine();
	      
	    } while (aantalPlaatsen < 0 || aantalPlaatsen > test.getVoorstellingByVoorstellingNr(voorstlNr).getVrijePlaatsen());
		return aantalPlaatsen;
	}

	public boolean StepLogin(){
		KlantDAO test = new KlantDAO();
		String naam;
		String pw;
		
		System.out.println("\nIndien u wilt stoppen geeft u U:0 en PW:0\n");
		
		System.out.println("Geef uw gebruikersnaam : ");
		naam = scanIn.next();
		System.out.println("Geef uw pw : ");
		pw = scanIn.next();
		
		if(test.checkPwd(naam, pw)){
			return true;
		}
		
		return false;
	}
}
